La mayoría de las entrevistas de programación de tecnología de primer nivel plantean problemas de diseño orientado a objetos.
Esto es lo que es y cómo abordarlos:
Los problemas de diseño orientado a objetos le piden que represente un sistema dado (por ejemplo, un sistema de estacionamiento o una red social) en términos de clases, propiedades y relación de clases entre sí.
No hay una respuesta correcta.
1. Reúne los requisitos
El problema se mantiene vago a propósito. Su primer trabajo es hacer preguntas aclaratorias y comprender bien el enunciado del problema.
Consejo profesional: siga creando una lista escrita de requisitos.
Si se le pide que cree un OOD de redes sociales, puede hacer preguntas como:
- ¿Pueden los usuarios dar me gusta, comentar, publicar?
- ¿La amistad es mutua (como facebook) o unidireccional (como instagram)?
- ¿Qué propiedades de un Usuario queremos almacenar?
Estas respuestas darán forma a tus clases y sus relaciones.
2. Averiguar las clases básicas y sus funcionalidades, y discutirlo con el entrevistador.
En nuestro caso, puedes tener estas clases básicas:
- Usuario
- Correo
- Comentario
3. El siguiente paso es comenzar a construir relaciones entre clases.
Por ejemplo:
La publicación puede ser de 3 tipos: ImagePost, VideoPost, TextOnlyPost. La publicación puede tener 3 clases secundarias. (Herencia)
Las publicaciones tienen al usuario como autor y los usuarios tienen a otros usuarios como amigos (asociación)
4. El último paso es escribir y definir claramente todas las clases y propiedades que ha discutido con el entrevistador. Por ejemplo, la clase de usuario final puede verse así:
Usuario
- nombre: cadena
- ID de usuario: cadena
- amigos: Usuario[]
- publicaciones: publicación[]